9장. 주방과 AI 협업자 이해하기
출처 — 진 킴·스티브 예기, 『바이브 코딩 프로덕션의 원칙』(제이펍), 9장 (pp. 167~201). 원문 PDF
vibe_coding_final_v11_260913.pdf(2026-09-13 판)토이 프로젝트를 넘어 실제 엔지니어링 문제를 풀려면, 채팅 어시스턴트부터 자율 코딩 에이전트까지 여러 AI 협업자 중 각 작업에 맞는 도구를 고르고, 그 도구에게 최대한의 접근 권한을 열어주는 법을 익혀야 한다.
학습 목표
이 장을 끝내면 다음을 할 수 있다.
- 바이브 코딩 루프의 7단계를 설명하고, 채팅 기반 방식과 에이전틱 방식의 속도 향상 폭(50~100% 대 5~10배)을 구분한다.
- 진의 비디오 발췌 프로젝트 사례로, 목표 설정 → 작업 분할 → 검증이 실제로 어떻게 진행되는지, 그리고 AI가 스스로도 틀릴 수 있다는 교훈을 재구성한다.
- 진의 트렐로 API 사례와 스티브의 Puppeteer 사례를 근거로, AI에게 도구 접근 권한을 주는 것이 왜 피드백 루프 자체를 바꾸는지 설명한다.
- 프롬프트 엔지니어링과 바이브 코딩의 차이를, 제약의 엄격함과 대화 방식을 기준으로 구분한다.
- 이 장이 예고하는 비동기 원격 에이전트·에이전트 클러스터·감독형 에이전트가 각각 어떤 문제를 해결하려는 것인지 설명한다.
전체 흐름도
§1 바이브 코딩 루프 (목표→분할→착수→검토→테스트→반복→자동화)
│
▼
§2 진의 비디오 발췌 프로젝트 — 채팅 기반 실전 사례
목표 설정 → 작업 분할(5개) → 작업1~3 → 결과(47분) → 보너스(진행 바 감지)
│
▼
§3 코딩 에이전트와 함께한 바이브 코딩 세션
진 · 트렐로 API(401 → 클로저 프로그램 실행) ── 스티브 · Puppeteer(눈을 뜬 AI)
│ 도구 없는 주방장은 잔소리꾼일 뿐 · 도구 선택하기
▼
§4 코딩 에이전트의 미래
비동기 원격 에이전트 → 에이전트 클러스터 → 감독형 에이전트 → 에이전트 메시
│
▼
§5 바이브 코딩 핵심 관행 — 대화·에러·지식·요청
명령보다 대화 · 에러가 스스로 말하게 하기 · AI 지식에 기대기 · 요청 날카롭게 다듬기
│
▼
§6 코딩 인터페이스의 캄브리아기 폭발 — 도구는 흥망하지만 원칙은 남는다
│
▼
§7 결론 — 6가지 핵심 실천 사항 · 다음 장(콘텍스트 도마 관리) 예고
0. 용어 사전
참고 — 위쪽 4개는 이 장을 읽기 전에 알아야 하는 선행 용어다. 낯설면 1장·3장을 먼저 보라.
| 한글 용어 | 원문 영문명 | 의미 |
|---|---|---|
| 바이브 코딩 | Vibe Coding | (선행) AI와 자연어로 대화하며 소프트웨어를 만드는 개발 방식을 가리키는 이 책의 핵심 용어. 정식 정의는 1장 §2(바이브 코딩의 등장)에서 다룬다 |
| FAAFO | FAAFO | (선행) 바이브 코딩이 주는 이점 전체(빠름·야심·자율성·재미·옵셔널리티)를 가리키는 축약어. 이 장은 이미 성립된 용어로만 쓴다. 전체 정의는 3장 전체(바이브 코딩의 가치)에서 다룬다 |
| 헤드 셰프 / 주방장 | Head Chef | (선행) 직접 실행하지 않고 표준을 세우고 결과물을 검수하며 책임을 지는 역할. 1장 §6("당신은 라인 담당자가 아닌 헤드 셰프다")이 먼저 도입했고, 8장 §1("헤드 셰프의 첫 출근")이 주방 비유 체계 전체를 정식으로 도입한다. 이 장은 "주방장"이라는 표현으로 쓴다(§3 "도구 없는 주방장은 잔소리꾼일 뿐") |
| 수셰프 | Sous Chef | (선행) 헤드 셰프의 지시를 받아 실제 조리를 맡는 역할 — 이 책에서는 AI 협업자를 가리키는 비유로 쓰인다. 1장 §6이 먼저 등장시켰고, 8장 §1이 "AI 수셰프"라는 명칭으로 정식 도입한다. 이 장 §5 도입부가 "수셰프의 광범위한 지식에 의존하는 방법"으로 언급한다 |
| 바이브 코딩 루프 | Vibe Coding Loop | 목표 설정 → 작업 분할 → 작업 착수 → 검토 → 테스트 및 검증 → 다듬고 반복(+워크플로 자동화)으로 이어지는 이 장의 핵심 작업 순환. §1 |
| 채팅 어시스턴트 | Chat Assistant | ChatGPT·클로드처럼 대화창에 프롬프트를 입력하면 코드를 답변으로 내놓는 방식의 AI 도구. 사용자가 직접 복사·붙여넣기·실행을 담당해야 해 병목이 된다. §2·§3 |
| 코딩 에이전트 | Coding Agent | 실제 개발자처럼 파일을 읽고 수정하고, 테스트나 유틸리티를 직접 실행하고, URL을 조회할 수 있는 자율형 AI. 부록 B 공식 용어집의 '에이전트' 정의(지시받은 의도를 자율적으로 수행하며 상태를 유지하는 AI 시스템)를 코딩 영역에 적용한 것이다. §3 |
| 오프바이원 에러 | Off-by-one Error | 반복 횟수·배열 인덱스 등에서 의도한 값보다 하나 많거나 적게 처리되어 발생하는 논리 에러. §2에서 AI가 실제로는 없던 이 에러를 "확신에 차서" 지목했다가 틀렸다 |
| CHOP(채팅 기반 프로그래밍) | Chat-oriented Programming | 부록 B 공식 용어집이 정의하는, 손으로 코드를 쓰는 대신 AI와 자연어 대화로 코드를 작성하는 방법론. 진의 비디오 발췌 프로젝트가 실제 사례다. §2·§3 |
| MCP(모델 컨텍스트 프로토콜) | Model Context Protocol | AI가 데이터베이스·브라우저·편집기 같은 시스템을 원격으로 제어하도록 해주는 프로토콜. 스티브의 Puppeteer 연결이 이 계열의 초기 사례다. §3 |
| 프롬프트 엔지니어링 | Prompt Engineering | 부록 B 공식 용어집 정의대로, 원하는 출력을 얻기 위해 효과적인 프롬프트를 설계하는 실천법. 이 장은 바이브 코딩과의 차이(제약의 엄격함)를 대비시킨다. §5 |
| 할루시네이션(환각) | Hallucination | 부록 B 공식 용어집 정의대로, AI가 사실이 아닌 정보를 그럴듯하게 지어내는 현상. §5가 "명확한 명세가 없으면 AI는 상상과 환각으로 빈칸을 채운다"고 경고할 때 쓰인다 |
| 비동기 원격 에이전트 | Asynchronous Remote Agent | 깃허브 이슈나 채팅 앱을 통해 작업을 위임하면, 자체 컨테이너에서 스스로 개발 환경을 띄우고 원격으로 작업하는 에이전트. §4 |
| 감독형 에이전트 / 에이전트 메시 | Supervisor Agent / Agent Mesh | 여러 에이전트를 감독하며 변경 지시·완료 여부를 알리는 에이전트(감독형 에이전트), 그리고 협력 중인 여러 에이전트가 속하는 '커뮤니티' 전체(에이전트 메시). §4 |
| 캄브리아기 폭발 | Cambrian Explosion | 원래는 약 5억 4천만 년 전 해양 생물 다양성이 폭발적으로 증가한 지질학적 사건. 깃허브 넥스트의 이단 가짓이 지금의 AI 코딩 인터페이스 다양화를 이 사건에 비유했다. §6 |
1. 바이브 코딩 루프
바이브 코딩 루프는 전통적인 개발자 루프와 구조는 비슷하지만, AI와 함께 일할 때는 모든 단계가 그대로 중요해진다는 점이 다르다. 저자들은 이 루프를 여섯 단계로 정리한다.
- 목표 설정 — 달성하고자 하는 결과가 무엇인지, 무엇이 성공인지, 왜 이것을 만드는지를 AI에게 명확하고 간결하게 설명한다.
- 작업 분할 — 하려는 일을 명확하고 달성 가능한 단계로 나눈다. 단계가 작을수록 성공 가능성이 높아지며, 이 분할 작업 자체를 AI에게 맡겨도 된다 — "이것이 내가 하려는 일이야. 계획을 세워줘"라고만 요청하면 된다.
- 작업 착수 — 목표와 분할을 바탕으로 AI에게 실행 계획을 만들도록 요청하거나, 곧바로 작업을 시작하라고 지시한다.
- 검토 — AI의 해결책이 겉보기에 올바르더라도, 신뢰할 근거가 확립되기 전까지는 반드시 검토한다.
- 테스트 및 검증 — 코드를 누가 작성했든 품질의 책임은 사람에게 있다. 코드를 생성하기 전에 테스트와 기대 결과를 먼저 작성할 때 AI가 가장 잘 작동한다(테스트 주도 개발자에게는 반가운 소식이다). 빠르게 실패하고 빠르게 고친다.
- 다듬고 반복 — 목표를 달성할 때까지 계속 반복한다.
참고 — 잠들면 안 된다. 저자들은 "AI와 함께 코딩할 때는 잠들면 안 된다"고 강조한다. 한 단계라도 놓치면 좌절스럽고 비용이 큰 재작업으로 이어지며, 재작업은 2부 전반에서 반복해서 다루는 주제다.
바이브 코딩 루프에 어느 정도 익숙해지면 일곱 번째 단계가 붙는다.
- 워크플로 자동화(보너스) — 타이핑·복사 붙여넣기·이곳저곳 옮겨 다니는 모든 마찰은 막대한 기회비용을 만든다. 수동으로 반복하고 있는 일이 있다면 그 비용은 바이브 코딩을 할 때마다 누적된다. 힌트는 FAAFO의 O(옵셔널리티)다 — 타이핑을 많이 하거나 데이터를 수동으로 뒤지고 있다면, 멈춰서 "이걸 AI에게 맡길 수 있을까?"라고 스스로 물어야 한다. 대답은 대개 '예'다.
2. 진의 비디오 발췌 프로젝트 — 채팅 기반 바이브 코딩 실전 사례
진은 지난 15년 동안 팟캐스트나 유튜브에서 흥미로운 내용을 볼 때마다 스크린숏을 찍어왔지만, 다시 뒤져 활용하기가 너무 번거로워 사실상 쓰지 못한 채 15년을 쌓아만 두고 있었다. 스티브와의 첫 페어 프로그래밍 세션에서, 둘은 이 스크린숏을 기반으로 유튜브 영상의 발췌 클립(자막까지 입힌)을 자동 생성하는 도구를 만들기로 했다.
목표 설정. 진의 최종 목표는 자막을 입힌 릴스용 .mp4 파일을 만들어 소셜 미디어에 공유하는 것이었다. 세션 전 진은 유튜브 채널·영상 정보, 추출하고 싶은 구간의 시작·끝 지점을 미리 데이터화하고, 원본 영상 파일과 트랜스크립트도 준비해두었다.
작업 분할. 목표가 정해지자 진은 AI가 구현 가능한 단위로 문제를 다섯 개로 쪼갰다 — ① 영상·트랜스크립트 다운로드(이미 yt-dlp로 완료) ② 타임스탬프 기준으로 ffmpeg를 사용해 영상 구간 추출 ③ 트랜스크립트에서 해당 구간 텍스트 추출 ④ 텍스트·타임스탬프로 자막 생성 ⑤ ffmpeg로 자막을 영상 위에 입히기. 진은 IntelliJ IDE 안에서 소스그래프의 Amp와 클로드 모델을 조합해, 자율형 에이전트가 나오기 전 방식대로 일반적인 채팅으로 바이브 코딩을 진행했다 — 프롬프트 입력 → 코드 생성 → 복사해 붙여넣기(또는 버튼 클릭) → 반복.
작업 1: 비디오 추출. "시작과 끝(초 단위)이 주어졌을 때 해당 구간을 추출하는 ffmpeg 명령어를 알려주고, 셀에서 실행해 /tmp/output.mp4로 출력해달라"는 짧은 프롬프트만으로 AI는 몇 분 만에 결과를 냈다. 진은 ffmpeg 문서를 찾아볼 필요도, 커맨드라인 인자나 시간 규칙을 배울 필요도 없었다. 작업이 단순해 보여 진은 테스트가 필요 없다고 판단하고 곧바로 다음 작업으로 넘어갔다. 저자들은 이 판단이 옳았는지 독자가 직접 생각해보라고 권한다.
작업 2: 트랜스크립트 처리 — AI도 자기 진단에서 틀릴 수 있다. 시작·종료 범위 목록을 기준으로 트랜스크립트에서 관련 항목을 추출하는 함수를 요청했다. AI가 만든 함수는 시간 구간이 겹치는 경우를 계산해야 해서 진은 이번엔 테스트가 필요하다고 판단했고, "테스트 코드를 작성해줘"라고 요청했다. AI가 제안한 테스트 케이스 중 하나가 실제로 실패했다. AI는 자신 있게 "코드에 오프바이원 에러가 있다"고 진단했지만, 확인해보니 코드는 문제가 없었고 틀린 것은 AI가 만든 테스트 케이스 자체였다. 그럴듯해 보이는 진단도, 그럴듯해 보이는 테스트도 틀릴 수 있다는 이중의 교훈이었다. AI는 늘 자신감 있게 말하고 왜 자신이 옳은지 장황하게 설명하므로, 결과는 항상 검증해야 한다.
작업 3: 자막 생성. ChatGPT에게 ffmpeg가 지원하는 자막 포맷을 묻자 SRT와 ASS를 알려주었고, 예시를 비교한 뒤 필드가 적고 구현이 단순한 SRT를 선택했다. "트랜스크립트 항목 목록(JSON 배열)을 SRT 파일로 변환하는 함수를 작성해줘" → "ffmpeg 명령어를 수정해서 SRT 자막 파일로 캡션을 생성해줘"라는 두 프롬프트로 마무리했다. 이 과정에서 두 사람은 SRT 포맷 전문가가 될 필요가 전혀 없었다.
결과. 총 47분의 채팅 기반 페어 프로그래밍 끝에 진은 세 가지 기능(구간 추출·SRT 자막 생성·캡션 입히기)을 모두 갖춘 도구를 완성했다. 다만 자막이 두 줄로 겹치고 타이밍이 어긋나는 버그가 있어, 그날 밤 이어서 약 한 시간을 더 들여 다음 날 마무리했다. 진의 X 게시물(메이어르 박사의 강연 인용문 하이라이트 릴스)은 25만 회 가까운 조회수를 기록했다.
참고 — 요점은 속도 자랑이 아니다. 저자들은 "AI가 진짜 프로그래머를 대체하지 못한다"가 요점이 아니라고 못 박는다. 요점은 옛날이었다면 이 프로그램이 아예 나오지 못했을 것이라는 점이다. 진은 이 프로젝트를 인생을 바꾸는 경험이라고 표현했고, 이후 자신이 쓸 여러 유틸리티 프로그램을 계속 만들고 있다.
보너스 작업: 유튜브 진행 바 감지하기. 시간상으로는 이 사례가 앞서 있다 — 서문에서 언급한 2024년 2월, 진은 iOS 유튜브 스크린숏(시간 표시 없이 빨간 진행 바만 보이는)에서 재생 시점을 추출하는 문제에 부딪혔다. "이미지의 왼쪽 가장자리부터 시작해 빨간 진행 바를 찾는 클로저 함수를 작성해줘"라고 요청하자, AI는 진이 한 번도 써본 적 없는 자바 2D 그래픽 라이브러리(ImageIO·BufferedImage·Color)로 코드를 작성했고, 첫 시도에서 정확히 이미지의 798번째 행에서 진행 바를 찾아냈다. 이어 "798번째 행에서 빨간색이 아닌 픽셀을 만날 때까지 오른쪽으로 이동해"라는 후속 프롬프트로 정확한 재생 비율까지 계산해냈다. 이 모든 작업은 한 시간 안에 끝났다 — 진이 직접 했다면 그래픽 API를 공부하는 데만 며칠이 걸렸을(혹은 아예 시도하지 않았을) 일이다. 이 실험이 진행된 시점은 2024년 9월로, 저자들은 "거의 선사시대급 AI"였다고 회고하며 코딩 에이전트의 발전 속도를 고려하면 오늘 같은 작업을 하면 훨씬 빨리 끝날 것이라고 덧붙인다.
3. 코딩 에이전트와 함께한 바이브 코딩 세션
채팅 기반 바이브 코딩은 속도를 높여주지만 근본적인 문제가 있다 — 여러분 자신이 병목이 된다는 점이다. AI의 제안이 아무리 훌륭해도 명령을 입력하고 테스트를 실행하고 코드를 복사해 붙여넣는 주체는 사람이다. 코딩 에이전트는 실제 개발자처럼 파일을 읽고 수정하고, 테스트나 유틸리티를 스스로 실행하고, URL을 조회하고, 하위 작업용 보조 프로그램까지 작성할 수 있다. 요약하면 코딩 에이전트는 인간 개발자와 매우 비슷하지만 엄청나게 빠르다.
진과 트렐로 API. 진은 트렐로(2011년 출시된 칸반 스타일 작업 관리 앱)에 저장해둔 리서치 노트와 기사를 요약하는 도구를 코딩 에이전트인 클로드 코드로 만들려 했다. 각 트렐로 카드를 순회하며 URL의 콘텐츠를 다운로드해 트렐로 API로 첨부 파일로 저장하려 했으나, 첨부 파일을 불러올 때마다 HTTP 401(unauthorized) 에러가 났다. 진은 45분 동안 이 인증 문제에 갇혀 있었다. 클로저 언어 자체의 문제를 배제하려고 curl 명령어로 API를 직접 호출해보려 했고, 클로드는 끝없이 다른 curl 명령어를 제안했지만 진이 직접 타이핑하고 실행하고 결과를 다시 전달하는 과정이 반복됐다 — 에이전틱 세션이 채팅 세션으로 퇴화한 것이다. 좌절한 진이 "네가 curl 명령어를 실행해"라고 요청했지만, 당시 클로드 코드는 보안 제약으로 curl을 직접 실행할 수 없었다. 진은 curl이 하던 일을 대신할 클로저 프로그램을 작성해 에이전트가 그것을 실행하도록 우회했다. 45초 만에 에이전트는 여섯 가지 다른 HTTP 호출을 시도해 성공하는 호출을 찾아냈다 — 원인은 트렐로 첨부 파일 API가 모든 요청에 OAuth 인증 헤더를 요구했기 때문이었다. 채팅으로 5~10배가 아니라 50~100%의 속도 향상만 가능했다면, 에이전트가 직접 실행하고 결과를 확인하는 이 방식은 5~10배의 속도 향상을 만든다. 이 이야기의 교훈은 명확하다 — AI에게 가능한 한 많은 도구 접근 권한을 주어야 한다. 필요한 명령어를 에이전트가 직접 실행할 수 없다면, 창의적인 대안을 찾아 제약을 없애야 AI의 속도가 제대로 나온다.
MCP(model context protocol) 서버는 AI가 데이터베이스·브라우저·편집기 같은 시스템을 원격으로 제어할 수 있게 해준다. 거의 모든 도구 앞에 결국 MCP 서버가 놓이게 될 것이라고 저자들은 전망한다.
스티브와 Puppeteer. 스티브는 자신의 게임 와이번에서 쓸 노드 리액트 기반 클라이언트를 타입스크립트로 새로 구축하며, 기존 5개의 네이티브 클라이언트(iOS·안드로이드·데스크톱 등)를 대체하려 했다. VS Code와 Amp로 일주일 작업해 만족스러운 속도를 냈지만, "타이틀 바가 너무 작다", "텍스트가 안 보인다", "폰트가 틀렸다" 같은 UI 문제를 일일이 수동으로 타이핑해 코딩 에이전트에게 전달해야 했다. 누군가의 제안으로 브라우저를 제어하고 화면을 캡처할 수 있는 자바스크립트 라이브러리 Puppeteer를 연결하자, 에이전트는 스스로 버튼을 눌러보고 "연결이 안 돼 있네요, 고치겠습니다"라고 답하며 사람처럼 화면을 탐색해가며 작업했다. 스티브는 Puppeteer 연결 전을 "눈을 가리고 당나귀 꼬리 달기 게임을 하는 것"에, 이후를 "인간이 따라올 수 없이 빠른 지능형 로봇을 지켜보는 것"에 비유했다. Puppeteer는 클라이언트-백엔드 간 연결 문제(핸드셰이킹 문제 포함)를 진단·수정하는 데도 쓰였다 — 에이전트가 브라우저 콘솔 로그·DOM·렌더링된 스크린숏에 직접 접근했기 때문이다. 스티브는 이후 작업 속도가 10배는 빨라졌다고 느꼈다.
참고 — 피드백 루프를 닫는다는 것. 진의 사례가 API 인증 오류라는 문제 범주를 통째로 없앴다면, 스티브의 사례는 시각적 UI 디버깅이라는 범주를 없앴다. 둘 다 사람이 AI의 눈과 손이 되어 일일이 전달하던 정보를, AI가 스스로 관찰하고 스스로 고치는 구조로 바꾼 것이다.
도구 없는 주방장은 잔소리꾼일 뿐. 일을 독립적으로 처리하는 AI와, 자리에 앉아 지시만 받는 AI 중 무엇을 원하는가? 챗봇은 여러분 얼굴에 대고 명령을 짖어대는 것처럼 느껴지지만, 코딩 에이전트는 반자율적으로 문제를 해결하며 동료에게 기대하는 방식으로 가끔만 확인을 구한다. 주방 도구 접근 권한을 주지 않고 불조차 못 켜게 하면, 파트너는 여러분의 안내견이나 일벌이 될 뿐이다.
도구 선택하기. 산업용 믹서를 써야 할 때와 거품기를 써야 할 때를 아는 마스터 셰프처럼, 작업에 맞는 도구를 고르는 감각이 필요하다 — 기본 원칙은 가장 강력한 도구를 쓰되 항상 탈출구를 열어두는 것이다. 코딩 에이전트는 중장비처럼 높은 수준의 지시를 받아 큰 덩어리를 처리한다. 에이전트가 특정 도구를 쓸 수 없거나 계속 고전하면, 사람이 의도적으로 에이전트의 눈과 손이 되어 채팅형으로 '다운그레이드'해야 할 때도 있다 — AI가 95%까지 잘 처리해도 마무리는 사람이 직접 해야 하는 경우다. 그럼에도 AI는 여전히 옆에서 개념을 설명하거나 테스트를 작성하며 조력자 역할을 한다. 간단한 질문·브레인스토밍·독립적인 작은 작업에는 오히려 화려한 도구를 의도적으로 쓰지 않는 편이 낫다 — ChatGPT나 클로드 같은 대형 모델은 훌륭한 인터페이스(화면 전체 활용, 휴대폰 지원, 음성 모드) 덕분에 주머니 속 맥가이버 칼 역할을 한다. 메이어르 박사는 "2022년에는 AI가 생성한 코드를 거의 수정하지 않고 쓰도록 스스로를 강제했는데, 지난 2년 동안 그 코드 생성 능력이 상상을 뛰어넘는 수준으로 향상됐다"고 회상했다.
4. 코딩 에이전트의 미래
저자들은 앞으로 등장할 더 강력한 도구들을 다음과 같이 예상한다.
- 비동기 원격 에이전트 — 깃허브 이슈나 채팅 앱을 통해 작업을 위임할 수 있는 에이전트. 자체 컨테이너에 개발 환경을 띄우고 도구로 테스트를 실행하며 원격에서 스스로 작업한다. 깃허브와 통합된 클로드 코드, OpenAI 코덱스가 대표적인 예다. 비동기로 작업을 맡길 수 없다면 여러분은 AI의 안내견이자 테스트 심부름꾼에 머문다.
- 에이전트 클러스터 — 대기시간 때문에 많은 사람이 여러 클로드 코드 에이전트를 클러스터로 묶어 쓴다. 단, 동시에 많은 에이전트를 다루려면 집중력과 경계가 필요하다.
- 감독형 에이전트 — 에이전트들을 감독하며 변경 지시나 작업 완료 여부를 알려주고, 인간의 판단이 필요할 때만 메시지를 보내는 에이전트. 인지 부하를 줄이기 위해 많은 개발사가 개발 중이다.
- 에이전트 메시 — 협력 중인 에이전트들이 속하는 '커뮤니티' 전체. 대형 소프트웨어 개발이나 비즈니스 워크플로 실행 같은 대규모 문제를 커뮤니티로서 해결한다.
참고 — 근성 있는 셰프. 저자들은 "근성 있는 셰프는 정전 상태에도 요리를 만들어낸다"고 말한다. AI 상호작용에 관한 기본기까지 숙달하면 회복력 있는 셰프가 될 수 있다는 뜻이며, 그래서 원웨이 도어(되돌릴 수 없는 도구·워크플로)는 가급적 피하고, 필요할 때 수동으로 쉽게 전환할 수 있어야 한다고 조언한다 — 에이전트로 프로젝트를 감독하는 수준부터 수제 코딩까지 스펙트럼 전체를 포용해야 한다.
5. 바이브 코딩 핵심 관행 정리 — 대화·에러·지식·요청
명령이나 계약보다 대화. 바이브 코딩은 빈틈없는 프롬프트를 만드는 일이 아니라, 순간순간 동적으로 문제를 해결하는 방식이다 — 친구와 문자 메시지를 주고받는 것에 가깝다. 반대로 프롬프트 엔지니어링은 고소한 변호사에게 보내는 이메일에 가깝다. 글자 하나하나가 결과에 영향을 주므로 신중한 테스트와 정확한 검증, 장기 유지 보수성이 필요하다. 바이브 코딩에서는 다음 네 가지가 성립한다.
- AI는 자주 실수하니 괜찮다 — 틀렸다고 대화를 포기하지 말고 요청을 다듬거나 방향을 바꾼다. AI는 피드백에서 학습한다.
- 오타와 엉성한 문법에 관대하다 — 표현을 정제하려 애쓰지 않아도 AI는 의도를 알아차린다.
- 프롬프트를 고치는 데 너무 많은 시간을 쓰지 않는다 — 완벽한 프롬프트가 아니라 결과에 집중한다. 검토 대상은 입력이 아니라 출력이다.
- 지저분하지만 생산적인 대화를 즐긴다 — 평화조약 협상이 아니라 동료와의 브레인스토밍처럼 대한다.
에러가 스스로 말하게 하기. 온갖 에러를 만나면 에러나 그 원인 동작을 그대로 채팅 세션에 복사해 넣는다. 컴파일 에러는 빌드 출력을, 런타임 에러는 스택 트레이스를, 예상치 못한 동작이나 테스트 실패는 실제 출력과 기대 출력을, IDE 문제는 관련 부분의 캡처를, UI 문제는 Puppeteer 같은 스크린 캡처 툴을 그대로 전달한다. "날짜 포맷이 안 된다"고 설명하는 대신 Invalid Date: TypeError: date.format is not a function 같은 원문 에러를 그대로 보여주는 편이 낫다 — AI는 에러 메시지와 로그를 이해하는 능력이 뛰어나 보통 즉시 문제를 찾아낸다.
AI가 가진 지식에 기대기. 인터넷에서 확인할 수 있는 대부분의 지식과 거의 모든 도구의 사용법을 AI가 이미 알고 있으므로, 난해한 도구를 배우는 데 시간을 쓸 필요가 없다. "2:15에서 시작하는 30초짜리 클립을 추출하고, 오디오는 제거하고, 720p로 압축해줘"처럼 요청하면 ffmpeg의 수십 개 파라미터를 배우지 않아도 된다. 진은 "특정 파일에 대한 모든 변경 사항의 깃 diff를 어떻게 생성하지?"라고 물어 10년 넘게 미뤄온 일을 해결했고, 스티브는 "20~100 커밋 전 어딘가에서 삭제된 모든 테스트를 되살려줘"라는 요청에 클로드 코드가 깃을 전수조사해 코드를 구해낸 경험이 있다(3부에서 더 자세히 다룬다).
요청 날카롭게 다듬기. 철자나 문법은 완벽하지 않아도 되지만, 풀고 싶은 문제 자체는 명확하고 정밀해야 한다 — AI는 아직 마음을 읽을 수 없기 때문이다. "타임존이 있는 날짜를 처리해야 해" 같은 모호한 요청으로는 세계 최고의 타임존 컨설턴트도 AI도 할 수 있는 게 많지 않다. 문제가 무엇인지, 알고 있는 것이 무엇인지, 어떤 도움이 필요한지를 자세히 말해야 한다(음성 인식으로 입력한 듯 엉성해도 괜찮다). 명확한 명세가 없으면 AI는 상상과 환각으로 빈칸을 채우지만, 구체적인 예시를 주면 AI는 의도를 놀랍도록 잘 따른다. 이 원칙 때문에 첫 번째 프롬프트가 가장 길어진다 — 배경 설명·현재 상태·목표·계획 요청까지 한 번에 담기 때문이다. 이후 프롬프트는 "좋아, 시작해!", "2번을 더 설명해줘", "아니, 그 변경 되돌려"처럼 짧아진다. AI가 제대로 일하면 프롬프트는 자연히 짧아지고, AI가 탈선하면 다시 길고 자세한 설명이나 새 대화가 필요해진다.
6. 코딩 인터페이스의 캄브리아기 폭발
깃허브 넥스트의 수석 리서치 디렉터 이단 가짓은 지금의 AI 도구 생태계를, 도구의 형태와 상호작용 방식이 동시에 폭발적으로 분화하는 캄브리아기 폭발에 비유했다. 약 5억 년 전의 그 사건이 점진적 선형 진화가 아니라 생물학적 다양성이 모든 방향으로 동시에 분화한 사건이었듯, 지금 AI 코딩 인터페이스도 단계적으로 진화하는 대신 수십 개의 실험과 도구가 동시에 제멋대로 가지를 뻗고 있다. 멀티모달 코드 생성·음성 제어 코딩·커맨드라인 코딩 에이전트 같은 새로운 인터페이스 중 상당수는 캄브리아기의 단명한 생물들처럼 사라질 것이고, 일부는 오늘날의 텍스트 편집기·컴파일러처럼 프로그래밍의 본질 자체가 될 것이다 — 무엇이 내일의 표준이 될지는 예측하기 어렵다.
참고 — 도구가 아니라 셰프가 위대한 주방을 만든다. 저자들은 코딩 툴이 급격히 진화하는 상황에서도, 이 책에서 다룬 기술과 원칙이 본질적인 변화를 이끄는 도구와 일시적 유행을 구분할 혜안을 길러준다고 강조한다. AI와 효과적으로 협업하는 핵심 원칙은 코딩 인터페이스가 안정화된 뒤에도 가치를 인정받을 것이다.
7. 결론
한 시간도 안 돼 15년 묵은 스크린숏을 릴스로 바꾼 진의 사례, 그리고 도구 접근 권한이 지수적 생산성 향상을 만든 트렐로·Puppeteer 사례를 통해, 이 장은 나만의 바이브 코딩 여정을 시작하는 데 필요한 핵심 도구와 기법을 전했다. 프롬프트 엔지니어링이 오작동 없이 오래 쓸 프롬프트를 만드는 일이라면, 바이브 코딩은 창의적 통제권은 사람이 쥔 채 AI에게 구현 세부 사항을 맡기는 대화형 워크플로를 구축하는 일이다. 요리를 시작하기 전 기억할 핵심 실천 사항은 다음 여섯 가지다.
- 대화 받아들이기 — 법률 문서처럼 상호작용하지 말고, 똑똑한 동료와 문자를 주고받듯 AI를 대한다.
- 에러가 스스로 말하게 하기 — 무엇이 잘못됐는지 설명하는 대신 에러 메시지를 그대로 복사해 붙여넣는다.
- AI의 백과사전급 지식에 기대기 — 이미 AI가 아는 난해한 도구를 배우느라 시간을 낭비하지 않는다.
- 작업에 맞는 올바른 도구 선택하기 — 가능하면 에이전트로 시작하고 필요시 자연스럽게 채팅형으로 전환한다. 항상 탈출구를 열어둔다.
- 스타일은 모호해도 목표는 정밀하게 설정하기 — 지시가 명확할수록 AI는 구현 세부 사항을 더 잘 처리한다.
- AI에게 도구 접근 권한 주기 — AI가 스스로 보고 실행하고 검증할 수 있어야 진짜 마법이 일어난다.
다음 장에서는 마스터 셰프가 미장플라스를 관리하듯 AI의 콘텍스트 윈도를 관리하는 법을 다룬다 — 모든 것을 콘텍스트에 욱여넣을 때의 역효과, 콘텍스트 포화의 경고 신호, 집중형·포괄형 콘텍스트 전략을 작업에 따라 구사하는 법이다.
핵심 개념 정리
| 개념 | 한 줄 설명 |
|---|---|
| 바이브 코딩 루프 | 목표 설정→작업 분할→작업 착수→검토→테스트 및 검증→다듬고 반복(+워크플로 자동화)의 6~7단계 순환 |
| 진의 비디오 발췌 프로젝트 | 47분의 채팅 기반 바이브 코딩으로 15년 묵은 스크린숏을 자막 딸린 릴스로 바꾼 사례 |
| AI 자기진단 오류 | AI가 "코드에 오프바이원 에러가 있다"고 확신했지만, 실제로는 AI 자신이 만든 테스트 케이스가 틀렸던 사례 |
| 채팅 어시스턴트 vs 코딩 에이전트 | 사람이 복사·붙여넣기를 담당하는 병목 구조 대 에이전트가 직접 실행·검증하는 구조. 속도차는 50~100% 대 5~10배 |
| 트렐로 API 401 사례 | curl을 직접 실행 못 하는 제약을, 대신 실행할 클로저 프로그램을 작성해 우회한 사례 |
| Puppeteer 연결 사례 | 브라우저 자동화 툴 연결로 AI가 UI를 스스로 보고 디버깅하게 된 사례. 당나귀 꼬리 달기 게임 비유 |
| 코딩 에이전트의 미래 4유형 | 비동기 원격 에이전트·에이전트 클러스터·감독형 에이전트·에이전트 메시 |
| 프롬프트 엔지니어링 vs 바이브 코딩 | 정밀한 계약(변호사 메일) 대 즉흥적 대화(친구 문자)라는 대비 |
| 캄브리아기 폭발 비유 | AI 코딩 인터페이스가 단계적이 아니라 동시다발적으로 분화하고 있다는 이단 가짓의 비유 |
| 6가지 핵심 실천 사항 | 대화 받아들이기·에러가 스스로 말하게 하기·AI 지식에 기대기·도구 선택하기·목표는 정밀하게·도구 접근 권한 주기 |
실무 체크리스트
- [ ] 작업이 단순해 보인다고 테스트를 건너뛰기 전에, 진의 "비디오 추출" 판단처럼 그 판단이 정말 옳은지 점검했는가?
- [ ] AI가 자신 있게 "원인은 이것"이라고 진단할 때, 그 진단 자체를 검증 없이 받아들이고 있지 않은가?
- [ ] 코딩 에이전트가 채팅형으로 퇴화하는 순간(직접 명령을 반복 전달하는 순간)을 알아차리고 있는가?
- [ ] 에이전트가 필요한 명령어를 직접 실행할 수 없을 때, 그 도구를 포기하는 대신 창의적인 우회로(대신 실행할 프로그램 작성 등)를 찾고 있는가?
- [ ] UI 디버깅에서 여전히 사람이 매번 스크린숏을 찍어 설명하고 있지는 않은가 — Puppeteer 같은 시각 접근 도구를 검토했는가?
- [ ] 간단한 질문·브레인스토밍에 굳이 무거운 코딩 에이전트를 켜서 오히려 느려지고 있지 않은가?
- [ ] 프롬프트를 완벽하게 다듬는 데 시간을 쓰기보다, 결과(출력)를 검토하는 데 시간을 쓰고 있는가?
- [ ] 첫 프롬프트에 배경·현재 상태·목표·제약을 충분히 담아, 이후 프롬프트가 짧아질 조건을 만들었는가?
- [ ] 되돌리기 어려운 원웨이 도어형 워크플로에 의존해, 수동 전환 경로를 잃지는 않았는가?
연습문제
- 유형: 실무 시나리오. '내 앱이 망가졌어'라는 프롬프트를 이 장의 원칙(요청 날카롭게 다듬기)에 따라 개선하라. 프롬프트를 직접 쓰지 말고, AI에게 프롬프트를 다듬어 달라고 요청하는 방법도 함께 제시하라.
- 유형: 실무 시나리오. 프로젝트에서 깨진 코드를 찾거나 일부러 간단한 버그를 하나 만들고, 설명 없이 에러 메시지(또는 스크린숏)만 AI에게 전달했을 때 문제를 정확히 진단하는지 확인하는 실험을 설계하라.
- 유형: 판단. 용량이 계속 초과되는 NoSQL 인스턴스를 MySQL로 옮기고 싶다. 이 장의 '요청 날카롭게 다듬기'와 '작업 분할' 원칙을 근거로, AI에게 이 마이그레이션을 맡기는 첫 프롬프트를 어떻게 구성할지 판단하라.
- 유형: 실무 시나리오. 1년 전에 멈춘 CI 설정이 있고, 그 YAML 문법을 배우고 싶지 않다. 이 장의 'AI가 가진 지식에 기대기' 원칙을 근거로, 깃허브 액션 설정 파일을 다시 작성하도록 요청하는 절차를 설계하라.
- 유형: 비교. 진의 트렐로 API 사례와 스티브의 Puppeteer 사례를 비교해, 두 사례가 공통으로 보여주는 "도구 접근 권한"의 원리와, 문제 범주(API 인증 대 UI 디버깅)가 다름에도 같은 교훈에 도달하는 이유를 설명하라.
최신 동향 (2026-09 기준)
최신 동향 (검증 2026-09-14) — 이 장이 예고한 MCP·비동기 원격 에이전트·감독형 에이전트 개념은 그 뒤로도 빠르게 표준화·제품화됐다. 이 장의 핵심 서술(도구 접근 권한이 피드백 루프를 바꾼다·프롬프트 엔지니어링과 바이브 코딩은 다르다)은 그대로 유효하다.
- MCP, 예고에서 업계 표준으로. 이 장 §3이 "거의 모든 도구 앞에 결국 MCP 서버가 놓이게 될 것"이라 예견한 시점 이후, MCP는 실제로 다자간 표준이 됐다. MCP 공식 사이트가 공개한 1주년 회고에 따르면 OpenAI(ChatGPT·개발자 플랫폼 전반)·구글(제미나이·Gemini CLI)·마이크로소프트·AWS가 모두 MCP를 채택했고, 공개 레지스트리에 등록된 서버가 9월 이후 407% 늘었다. 이 장이 "MCP는 뒤에서 더 설명한다"고 미룬 약속이, 특정 회사의 실험이 아니라 업계 공통 인프라가 되는 방향으로 실현된 셈이다.
- §4가 예고한 감독형 에이전트·에이전트 클러스터의 실제 구현. 이 장이 미래형으로 그린 "에이전트들을 감독하는 에이전트"·"에이전트 클러스터"는 Claude Code 공식 문서의 서브에이전트(sub-agents) 기능과 Agent SDK로 구체화됐다 — 리드 에이전트가 하위 작업을 배정하고 결과를 병합하는 구조, 여러 세션을 동시에 띄워 한 화면에서 관찰하는 기능이 실제 제품 문서에 올라 있다. "무엇이 내일의 표준이 될지 예측하기 어렵다"(§6)는 이 장의 신중함과 달리, 이 두 개념만큼은 비교적 빠르게 표준 기능으로 자리 잡았다.
부록 A. 핵심 비교표
| 구분 | A | B |
|---|---|---|
| 도구 형태 | 채팅 어시스턴트 — 대화창에 프롬프트를 넣으면 코드를 답변으로 받는다. 복사·붙여넣기·실행을 사람이 담당해 병목이 된다 | 코딩 에이전트 — 파일을 읽고 수정하고 테스트를 직접 실행한다. 사람은 지시와 확인만 한다 |
| 대화의 성격 | 바이브 코딩 — 친구와 문자를 주고받듯 즉흥적이다. 오타·엉성한 문법에 관대하고, 검토 대상은 출력이다 | 프롬프트 엔지니어링 — 변호사에게 보내는 이메일처럼 정밀하다. 신중한 테스트·명확한 검증·장기 유지 보수성이 필요하다 |
| 사례 1: 진의 트렐로 API | 문제 — HTTP 401 인증 오류, 클로드 코드가 보안 제약으로 curl을 직접 실행 못함 | 해결 — curl을 대신할 클로저 프로그램을 작성해 에이전트가 실행하도록 우회, 45초 만에 원인 발견 |
| 사례 2: 스티브의 Puppeteer | 이전 — UI 문제를 사람이 일일이 타이핑해 전달("당나귀 꼬리 달기 게임") | 이후 — 에이전트가 브라우저를 직접 보고 스스로 진단·수정("지능형 로봇을 지켜보는 느낌") |
| 속도 향상 폭 | 채팅 기반 — 50~100% 속도 향상 | 에이전틱 코딩 — 5~10배 속도 향상 |
부록 B. 추천 참고 자료
외부 자료 (Tier 1 공식, 생존 확인 2026-09-14)
- MCP(Model Context Protocol) 공식 사이트 — modelcontextprotocol.io
- MCP 1주년 회고 — OpenAI·구글·마이크로소프트 채택 현황 — One Year of MCP (공식 블로그)
- Puppeteer 공식 문서 — pptr.dev
- Claude Code 공식 문서 — 서브에이전트·Agent SDK — code.claude.com/docs
본 책 연계 챕터
| 챕터 | 이 장이 다루지 않은 것 |
|---|---|
| 8장 §1 (헤드 셰프의 첫 출근 — 주방 비유가 이 장에서 시작된다) | 이 장이 "주방장"·"수셰프"로 앞서 쓴 표현의 바탕이 되는 헤드 셰프·AI 수셰프 비유 체계의 정식 도입 |
| 10장 §4·§7 (콘텍스트 포화의 위험성 · 집중형 콘텍스트 ↔ 포괄형 콘텍스트) | 이 장 §7이 예고한 콘텍스트 윈도 관리 — 콘텍스트 포화 경고 신호, 집중형·포괄형 콘텍스트 전략 |
| 3부(13~16장, 개발자 도구의 캄브리아기 폭발 속 항해하기 외) | 이 장 §3이 "3부에서 더 자세히 들려드리겠다"고 예고한, 스티브가 삭제된 테스트를 되살린 깃 전수조사 사례의 전체 맥락 |
부록 C. 연습문제 풀이
- (문제 1 정답) '내 앱이 망가졌어'는 무엇이 어떻게 망가졌는지, 기대 동작이 무엇인지, 어떤 도움이 필요한지가 전부 빠진 모호한 요청이다. §5가 제시하는 개선 방향은 "타임존 처리" 예시처럼 알고 있는 것·곤란한 상황·원하는 결과를 구체적으로 풀어 쓰는 것이다. 힌트대로, 직접 다듬는 대신 "이 요청을 더 명확한 프롬프트로 다듬어줘. 내가 아는 것과 필요한 도움을 함께 알려줄게"처럼 AI에게 다듬기 자체를 맡길 수도 있다.
- (문제 2 정답) §5 "에러가 스스로 말하게 하기"에 따르면, 설명 대신 에러 메시지(스택 트레이스·실제 출력과 기대 출력·스크린숏)를 그대로 전달했을 때 AI가 즉시 원인을 찾아내는지가 실험의 핵심이다. 코딩 에이전트를 쓰고 있다면 한 걸음 더 나아가, 사람의 개입 없이 자동으로 문제를 수정하는지까지 관찰 대상에 넣을 수 있다.
- (문제 3 정답) §2의 "작업 분할" 원칙대로 먼저 문제를 데이터 이관·쿼리 마이그레이션·검증의 작은 단위로 나눈다. 그다음 §5 "요청 날카롭게 다듬기" 원칙에 따라 첫 프롬프트에 현재 스키마·데이터 규모·MySQL을 택한 이유·검증 방법까지 배경으로 담아야 한다 — 이 장이 "첫 번째 프롬프트가 가장 길어진다"고 말한 이유가 정확히 이 상황에 해당한다.
- (문제 4 정답) §5 "AI가 가진 지식에 기대기"에 따르면 난해한 YAML 문법을 직접 배우는 대신, "이 CI 설정을 깃허브 액션으로 다시 작성해줘"처럼 목표를 명확히 전달하면 AI가 세부 문법을 처리한다. 다만 §1의 "검토"·"테스트 및 검증" 단계를 건너뛰지 않아야 한다 — 실제로 파이프라인이 통과하는지 확인하는 책임은 여전히 사람에게 있다.
- (문제 5 정답) 두 사례는 문제 범주(API 인증 대 UI 디버깅)가 다르지만, 공통적으로 AI가 스스로 관찰하고 스스로 검증할 수 있게 되자 피드백 루프가 근본적으로 빨라졌다는 하나의 원리로 수렴한다. 진의 사례에서는 curl 실행 제약을 클로저 프로그램으로 우회해 에이전트가 직접 결과를 확인했고, 스티브의 사례에서는 Puppeteer가 에이전트에게 "눈"을 달아줘 사람이 매번 화면을 설명할 필요를 없앴다. 두 사례 모두 "AI에게 가능한 한 많은 도구 접근 권한을 주어야 한다"(§3)는 이 장의 핵심 주장을 뒷받침한다.
클릭하거나 Space를 눌러 뒤집기